"""
生成器，是一个特殊的迭代器（保存位置+返回下个值）
next(迭代器) 得到下一值
next(生成器) 也能够得到下个值


生成器创建方式：
1> 列表推导式
2> 函数中使用 yield
"""
# 列表推导式
data_list1 = [i*2 for i in range(10)]
for value in data_list1:
    print(value)
# print(data_list1)

# 生成器的创建1.
data_list1 = (x*2 for x in range(10))
print(data_list1)
# 通过next 获取下个值
value = next(data_list1)
print('----1--->',value)

value = next(data_list1)
print('----2--->',value)

value = next(data_list1)
print('----3--->',value)

value = next(data_list1)
print('----4--->',value)

value = next(data_list1)
print('----5--->',value)

value = next(data_list1)
print('----6--->',value)

value = next(data_list1)
print('----7--->',value)

value = next(data_list1)
print('----8--->',value)

print("***********************************************")


def test():
    return 10

m = test()
print('m = ',m)

# 使用yield 创建了一个生成器
def test1():
    yield 10

# n 是一个生成器对象
n = test1()
print('n = ',n)

value = next(n)
print('value----->',value)